package ycl.common.constants;

/**
 * 数据库注入语句
 *
 * @author: YCL
 * @date: 2021-10-18 11:17:00
 */
@SuppressWarnings("all")
public class SqlInjectionConstant {

	/**
	 * 距离计算数据库语句
	 * <p>
	 * 要求:
	 * 1. 数据表里要有 lat(纬度) / lng(经度) 两个字段
	 * 2. 需要传入 lat / lng 两个字段, 缺一不可
	 * <p>
	 * 解析:
	 * 1. 传入的两个字段代表调用者当前的经纬度
	 * 2. 由地心到这两个坐标点的经度弧长、纬度弧长, 再使用三角函数算出两点距离
	 */
	public static final String DISTANCE = "(ACOS(" +
			"SIN((#{lat} * 3.1415) / 180) * SIN((lat * 3.1415) / 180)" +
			" + COS((#{lat} * 3.1415) / 180) * COS((lat * 3.1415) / 180) * COS((#{lng} * 3.1415) / 180 - (lng * 3.1415) / 180))" +
			" * 6370.996)";
}
